﻿/***************************************************************************

Copyright (c) Microsoft Corporation. All rights reserved.
THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.

***************************************************************************/
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.21111.0
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by xsd, Version=2.0.20207.0.
// 
namespace Microsoft.VsTemplateDesigner {
    using System.Xml.Serialization;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    [XmlRoot(Namespace="http://schemas.microsoft.com/developer/vstemplate/2005", IsNullable=false)]
    public partial class VSTemplate : object, System.ComponentModel.INotifyPropertyChanged {
        
        private VSTemplateTemplateData templateDataField;
        
        private VSTemplateTemplateContent templateContentField;
        
        private VSTemplateWizardExtension[] wizardExtensionField;
        
        private VSTemplateWizardData[] wizardDataField;
        
        private string typeField;
        
        private string versionField;
        
        /// <remarks/>
        public VSTemplateTemplateData TemplateData {
            get {
                return templateDataField;
            }
            set {
                templateDataField = value;
                RaisePropertyChanged("TemplateData");
            }
        }
        
        /// <remarks/>
        public VSTemplateTemplateContent TemplateContent {
            get {
                return templateContentField;
            }
            set {
                templateContentField = value;
                RaisePropertyChanged("TemplateContent");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("WizardExtension")]
        public VSTemplateWizardExtension[] WizardExtension {
            get {
                return wizardExtensionField;
            }
            set {
                wizardExtensionField = value;
                RaisePropertyChanged("WizardExtension");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("WizardData")]
        public VSTemplateWizardData[] WizardData {
            get {
                return wizardDataField;
            }
            set {
                wizardDataField = value;
                RaisePropertyChanged("WizardData");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Type {
            get {
                return typeField;
            }
            set {
                typeField = value;
                RaisePropertyChanged("Type");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Version {
            get {
                return versionField;
            }
            set {
                versionField = value;
                RaisePropertyChanged("Version");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateTemplateData : object, System.ComponentModel.INotifyPropertyChanged {
        
        private NameDescriptionIcon nameField;
        
        private NameDescriptionIcon descriptionField;
        
        private NameDescriptionIcon iconField;
        
        private string previewImageField;
        
        private string projectTypeField;
        
        private string projectSubTypeField;
        
        private string templateIDField;
        
        private string templateGroupIDField;
        
        private string sortOrderField;
        
        private bool createNewFolderField;
        
        private bool createNewFolderFieldSpecified;
        
        private string defaultNameField;
        
        private bool provideDefaultNameField;
        
        private bool provideDefaultNameFieldSpecified;
        
        private bool promptForSaveOnCreationField;
        
        private bool promptForSaveOnCreationFieldSpecified;
        
        private bool enableLocationBrowseButtonField;
        
        private bool enableLocationBrowseButtonFieldSpecified;
        
        private bool enableEditOfLocationFieldField;
        
        private bool enableEditOfLocationFieldFieldSpecified;
        
        private bool hiddenField;
        
        private bool hiddenFieldSpecified;
        
        private string locationFieldMRUPrefixField;
        
        private string numberOfParentCategoriesToRollUpField;
        
        private object createInPlaceField;
        
        private object buildOnLoadField;
        
        private object showByDefaultField;
        
        private VSTemplateTemplateDataLocationField locationFieldField;
        
        private bool locationFieldFieldSpecified;
        
        private bool supportsMasterPageField;
        
        private bool supportsMasterPageFieldSpecified;
        
        private bool supportsCodeSeparationField;
        
        private bool supportsCodeSeparationFieldSpecified;
        
        private bool supportsLanguageDropDownField;
        
        private bool supportsLanguageDropDownFieldSpecified;
        
        private VSTemplateTemplateDataRequiredFrameworkVersion requiredFrameworkVersionField;
        
        private bool requiredFrameworkVersionFieldSpecified;
        
        private string frameworkVersionField;
        
        private VSTemplateTemplateDataMaxFrameworkVersion maxFrameworkVersionField;
        
        private bool maxFrameworkVersionFieldSpecified;
        
        private string customDataSignatureField;
        
        /// <remarks/>
        public NameDescriptionIcon Name {
            get {
                return nameField;
            }
            set {
                nameField = value;
                RaisePropertyChanged("Name");
            }
        }
        
        /// <remarks/>
        public NameDescriptionIcon Description {
            get {
                return descriptionField;
            }
            set {
                descriptionField = value;
                RaisePropertyChanged("Description");
            }
        }
        
        /// <remarks/>
        public NameDescriptionIcon Icon {
            get {
                return iconField;
            }
            set {
                iconField = value;
                RaisePropertyChanged("Icon");
            }
        }
        
        /// <remarks/>
        public string PreviewImage {
            get {
                return previewImageField;
            }
            set {
                previewImageField = value;
                RaisePropertyChanged("PreviewImage");
            }
        }
        
        /// <remarks/>
        public string ProjectType {
            get {
                return projectTypeField;
            }
            set {
                projectTypeField = value;
                RaisePropertyChanged("ProjectType");
            }
        }
        
        /// <remarks/>
        public string ProjectSubType {
            get {
                return projectSubTypeField;
            }
            set {
                projectSubTypeField = value;
                RaisePropertyChanged("ProjectSubType");
            }
        }
        
        /// <remarks/>
        public string TemplateID {
            get {
                return templateIDField;
            }
            set {
                templateIDField = value;
                RaisePropertyChanged("TemplateID");
            }
        }
        
        /// <remarks/>
        public string TemplateGroupID {
            get {
                return templateGroupIDField;
            }
            set {
                templateGroupIDField = value;
                RaisePropertyChanged("TemplateGroupID");
            }
        }
        
        /// <remarks/>
        [XmlElement(DataType="integer")]
        public string SortOrder {
            get {
                return sortOrderField;
            }
            set {
                sortOrderField = value;
                RaisePropertyChanged("SortOrder");
            }
        }
        
        /// <remarks/>
        public bool CreateNewFolder {
            get {
                return createNewFolderField;
            }
            set {
                createNewFolderField = value;
                RaisePropertyChanged("CreateNewFolder");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool CreateNewFolderSpecified {
            get {
                return createNewFolderFieldSpecified;
            }
            set {
                createNewFolderFieldSpecified = value;
                RaisePropertyChanged("CreateNewFolderSpecified");
            }
        }
        
        /// <remarks/>
        public string DefaultName {
            get {
                return defaultNameField;
            }
            set {
                defaultNameField = value;
                RaisePropertyChanged("DefaultName");
            }
        }
        
        /// <remarks/>
        public bool ProvideDefaultName {
            get {
                return provideDefaultNameField;
            }
            set {
                provideDefaultNameField = value;
                RaisePropertyChanged("ProvideDefaultName");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool ProvideDefaultNameSpecified {
            get {
                return provideDefaultNameFieldSpecified;
            }
            set {
                provideDefaultNameFieldSpecified = value;
                RaisePropertyChanged("ProvideDefaultNameSpecified");
            }
        }
        
        /// <remarks/>
        public bool PromptForSaveOnCreation {
            get {
                return promptForSaveOnCreationField;
            }
            set {
                promptForSaveOnCreationField = value;
                RaisePropertyChanged("PromptForSaveOnCreation");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool PromptForSaveOnCreationSpecified {
            get {
                return promptForSaveOnCreationFieldSpecified;
            }
            set {
                promptForSaveOnCreationFieldSpecified = value;
                RaisePropertyChanged("PromptForSaveOnCreationSpecified");
            }
        }
        
        /// <remarks/>
        public bool EnableLocationBrowseButton {
            get {
                return enableLocationBrowseButtonField;
            }
            set {
                enableLocationBrowseButtonField = value;
                RaisePropertyChanged("EnableLocationBrowseButton");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool EnableLocationBrowseButtonSpecified {
            get {
                return enableLocationBrowseButtonFieldSpecified;
            }
            set {
                enableLocationBrowseButtonFieldSpecified = value;
                RaisePropertyChanged("EnableLocationBrowseButtonSpecified");
            }
        }
        
        /// <remarks/>
        public bool EnableEditOfLocationField {
            get {
                return enableEditOfLocationFieldField;
            }
            set {
                enableEditOfLocationFieldField = value;
                RaisePropertyChanged("EnableEditOfLocationField");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool EnableEditOfLocationFieldSpecified {
            get {
                return enableEditOfLocationFieldFieldSpecified;
            }
            set {
                enableEditOfLocationFieldFieldSpecified = value;
                RaisePropertyChanged("EnableEditOfLocationFieldSpecified");
            }
        }
        
        /// <remarks/>
        public bool Hidden {
            get {
                return hiddenField;
            }
            set {
                hiddenField = value;
                RaisePropertyChanged("Hidden");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool HiddenSpecified {
            get {
                return hiddenFieldSpecified;
            }
            set {
                hiddenFieldSpecified = value;
                RaisePropertyChanged("HiddenSpecified");
            }
        }
        
        /// <remarks/>
        public string LocationFieldMRUPrefix {
            get {
                return locationFieldMRUPrefixField;
            }
            set {
                locationFieldMRUPrefixField = value;
                RaisePropertyChanged("LocationFieldMRUPrefix");
            }
        }
        
        /// <remarks/>
        [XmlElement(DataType="integer")]
        public string NumberOfParentCategoriesToRollUp {
            get {
                return numberOfParentCategoriesToRollUpField;
            }
            set {
                numberOfParentCategoriesToRollUpField = value;
                RaisePropertyChanged("NumberOfParentCategoriesToRollUp");
            }
        }
        
        /// <remarks/>
        public object CreateInPlace {
            get {
                return createInPlaceField;
            }
            set {
                createInPlaceField = value;
                RaisePropertyChanged("CreateInPlace");
            }
        }
        
        /// <remarks/>
        public object BuildOnLoad {
            get {
                return buildOnLoadField;
            }
            set {
                buildOnLoadField = value;
                RaisePropertyChanged("BuildOnLoad");
            }
        }
        
        /// <remarks/>
        public object ShowByDefault {
            get {
                return showByDefaultField;
            }
            set {
                showByDefaultField = value;
                RaisePropertyChanged("ShowByDefault");
            }
        }
        
        /// <remarks/>
        public VSTemplateTemplateDataLocationField LocationField {
            get {
                return locationFieldField;
            }
            set {
                locationFieldField = value;
                RaisePropertyChanged("LocationField");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool LocationFieldSpecified {
            get {
                return locationFieldFieldSpecified;
            }
            set {
                locationFieldFieldSpecified = value;
                RaisePropertyChanged("LocationFieldSpecified");
            }
        }
        
        /// <remarks/>
        public bool SupportsMasterPage {
            get {
                return supportsMasterPageField;
            }
            set {
                supportsMasterPageField = value;
                RaisePropertyChanged("SupportsMasterPage");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool SupportsMasterPageSpecified {
            get {
                return supportsMasterPageFieldSpecified;
            }
            set {
                supportsMasterPageFieldSpecified = value;
                RaisePropertyChanged("SupportsMasterPageSpecified");
            }
        }
        
        /// <remarks/>
        public bool SupportsCodeSeparation {
            get {
                return supportsCodeSeparationField;
            }
            set {
                supportsCodeSeparationField = value;
                RaisePropertyChanged("SupportsCodeSeparation");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool SupportsCodeSeparationSpecified {
            get {
                return supportsCodeSeparationFieldSpecified;
            }
            set {
                supportsCodeSeparationFieldSpecified = value;
                RaisePropertyChanged("SupportsCodeSeparationSpecified");
            }
        }
        
        /// <remarks/>
        public bool SupportsLanguageDropDown {
            get {
                return supportsLanguageDropDownField;
            }
            set {
                supportsLanguageDropDownField = value;
                RaisePropertyChanged("SupportsLanguageDropDown");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool SupportsLanguageDropDownSpecified {
            get {
                return supportsLanguageDropDownFieldSpecified;
            }
            set {
                supportsLanguageDropDownFieldSpecified = value;
                RaisePropertyChanged("SupportsLanguageDropDownSpecified");
            }
        }
        
        /// <remarks/>
        public VSTemplateTemplateDataRequiredFrameworkVersion RequiredFrameworkVersion {
            get {
                return requiredFrameworkVersionField;
            }
            set {
                requiredFrameworkVersionField = value;
                RaisePropertyChanged("RequiredFrameworkVersion");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool RequiredFrameworkVersionSpecified {
            get {
                return requiredFrameworkVersionFieldSpecified;
            }
            set {
                requiredFrameworkVersionFieldSpecified = value;
                RaisePropertyChanged("RequiredFrameworkVersionSpecified");
            }
        }
        
        /// <remarks/>
        public string FrameworkVersion {
            get {
                return frameworkVersionField;
            }
            set {
                frameworkVersionField = value;
                RaisePropertyChanged("FrameworkVersion");
            }
        }
        
        /// <remarks/>
        public VSTemplateTemplateDataMaxFrameworkVersion MaxFrameworkVersion {
            get {
                return maxFrameworkVersionField;
            }
            set {
                maxFrameworkVersionField = value;
                RaisePropertyChanged("MaxFrameworkVersion");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool MaxFrameworkVersionSpecified {
            get {
                return maxFrameworkVersionFieldSpecified;
            }
            set {
                maxFrameworkVersionFieldSpecified = value;
                RaisePropertyChanged("MaxFrameworkVersionSpecified");
            }
        }
        
        /// <remarks/>
        public string CustomDataSignature {
            get {
                return customDataSignatureField;
            }
            set {
                customDataSignatureField = value;
                RaisePropertyChanged("CustomDataSignature");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class NameDescriptionIcon : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string packageField;
        
        private string idField;
        
        private string valueField;
        
        /// <remarks/>
        [XmlAttribute()]
        public string Package {
            get {
                return packageField;
            }
            set {
                packageField = value;
                RaisePropertyChanged("Package");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string ID {
            get {
                return idField;
            }
            set {
                idField = value;
                RaisePropertyChanged("ID");
            }
        }
        
        /// <remarks/>
        [XmlText()]
        public string Value {
            get {
                return valueField;
            }
            set {
                valueField = value;
                RaisePropertyChanged("Value");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public enum VSTemplateTemplateDataLocationField {
        
        /// <remarks/>
        Enabled,
        
        /// <remarks/>
        Disabled,
        
        /// <remarks/>
        Hidden,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public enum VSTemplateTemplateDataRequiredFrameworkVersion {
        
        /// <remarks/>
        [XmlEnum("2.0")]
        Item20,
        
        /// <remarks/>
        [XmlEnum("3.0")]
        Item30,
        
        /// <remarks/>
        [XmlEnum("3.5")]
        Item35,
        
        /// <remarks/>
        [XmlEnum("4.0")]
        Item40,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public enum VSTemplateTemplateDataMaxFrameworkVersion {
        
        /// <remarks/>
        [XmlEnum("2.0")]
        Item20,
        
        /// <remarks/>
        [XmlEnum("3.0")]
        Item30,
        
        /// <remarks/>
        [XmlEnum("3.5")]
        Item35,
        
        /// <remarks/>
        [XmlEnum("4.0")]
        Item40,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateTemplateContent : object, System.ComponentModel.INotifyPropertyChanged {
        
        private object[] itemsField;
        
        private VSTemplateTemplateContentCustomParameter[] customParametersField;
        
        /// <remarks/>
        [XmlElement("Project", typeof(VSTemplateTemplateContentProject))]
        [XmlElement("ProjectCollection", typeof(VSTemplateTemplateContentProjectCollection))]
        [XmlElement("ProjectItem", typeof(VSTemplateTemplateContentProjectItem))]
        [XmlElement("References", typeof(VSTemplateTemplateContentReferences))]
        public object[] Items {
            get {
                return itemsField;
            }
            set {
                itemsField = value;
                RaisePropertyChanged("Items");
            }
        }
        
        /// <remarks/>
        [XmlArrayItem("CustomParameter", IsNullable=false)]
        public VSTemplateTemplateContentCustomParameter[] CustomParameters {
            get {
                return customParametersField;
            }
            set {
                customParametersField = value;
                RaisePropertyChanged("CustomParameters");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateTemplateContentProject : object, System.ComponentModel.INotifyPropertyChanged {
        
        private object[] itemsField;
        
        private string fileField;
        
        private string targetFileNameField;
        
        private bool replaceParametersField;
        
        private bool replaceParametersFieldSpecified;
        
        /// <remarks/>
        [XmlElement("Folder", typeof(Folder))]
        [XmlElement("ProjectItem", typeof(ProjectItem))]
        public object[] Items {
            get {
                return itemsField;
            }
            set {
                itemsField = value;
                RaisePropertyChanged("Items");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string File {
            get {
                return fileField;
            }
            set {
                fileField = value;
                RaisePropertyChanged("File");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string TargetFileName {
            get {
                return targetFileNameField;
            }
            set {
                targetFileNameField = value;
                RaisePropertyChanged("TargetFileName");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public bool ReplaceParameters {
            get {
                return replaceParametersField;
            }
            set {
                replaceParametersField = value;
                RaisePropertyChanged("ReplaceParameters");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool ReplaceParametersSpecified {
            get {
                return replaceParametersFieldSpecified;
            }
            set {
                replaceParametersFieldSpecified = value;
                RaisePropertyChanged("ReplaceParametersSpecified");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    [XmlRoot(Namespace="http://schemas.microsoft.com/developer/vstemplate/2005", IsNullable=false)]
    public partial class Folder : object, System.ComponentModel.INotifyPropertyChanged {
        
        private object[] itemsField;
        
        private string nameField;
        
        private string targetFolderNameField;
        
        /// <remarks/>
        [XmlElement("Folder", typeof(Folder))]
        [XmlElement("ProjectItem", typeof(ProjectItem))]
        public object[] Items {
            get {
                return itemsField;
            }
            set {
                itemsField = value;
                RaisePropertyChanged("Items");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string Name {
            get {
                return nameField;
            }
            set {
                nameField = value;
                RaisePropertyChanged("Name");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string TargetFolderName {
            get {
                return targetFolderNameField;
            }
            set {
                targetFolderNameField = value;
                RaisePropertyChanged("TargetFolderName");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    [XmlRoot(Namespace="http://schemas.microsoft.com/developer/vstemplate/2005", IsNullable=false)]
    public partial class ProjectItem : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string targetFileNameField;
        
        private bool replaceParametersField;
        
        private bool replaceParametersFieldSpecified;
        
        private bool openInEditorField;
        
        private bool openInEditorFieldSpecified;
        
        private int openOrderField;
        
        private bool openOrderFieldSpecified;
        
        private bool openInWebBrowserField;
        
        private bool openInWebBrowserFieldSpecified;
        
        private bool openInHelpBrowserField;
        
        private bool openInHelpBrowserFieldSpecified;
        
        private string valueField;
        
        /// <remarks/>
        [XmlAttribute()]
        public string TargetFileName {
            get {
                return targetFileNameField;
            }
            set {
                targetFileNameField = value;
                RaisePropertyChanged("TargetFileName");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public bool ReplaceParameters {
            get {
                return replaceParametersField;
            }
            set {
                replaceParametersField = value;
                RaisePropertyChanged("ReplaceParameters");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool ReplaceParametersSpecified {
            get {
                return replaceParametersFieldSpecified;
            }
            set {
                replaceParametersFieldSpecified = value;
                RaisePropertyChanged("ReplaceParametersSpecified");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public bool OpenInEditor {
            get {
                return openInEditorField;
            }
            set {
                openInEditorField = value;
                RaisePropertyChanged("OpenInEditor");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool OpenInEditorSpecified {
            get {
                return openInEditorFieldSpecified;
            }
            set {
                openInEditorFieldSpecified = value;
                RaisePropertyChanged("OpenInEditorSpecified");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public int OpenOrder {
            get {
                return openOrderField;
            }
            set {
                openOrderField = value;
                RaisePropertyChanged("OpenOrder");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool OpenOrderSpecified {
            get {
                return openOrderFieldSpecified;
            }
            set {
                openOrderFieldSpecified = value;
                RaisePropertyChanged("OpenOrderSpecified");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public bool OpenInWebBrowser {
            get {
                return openInWebBrowserField;
            }
            set {
                openInWebBrowserField = value;
                RaisePropertyChanged("OpenInWebBrowser");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool OpenInWebBrowserSpecified {
            get {
                return openInWebBrowserFieldSpecified;
            }
            set {
                openInWebBrowserFieldSpecified = value;
                RaisePropertyChanged("OpenInWebBrowserSpecified");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public bool OpenInHelpBrowser {
            get {
                return openInHelpBrowserField;
            }
            set {
                openInHelpBrowserField = value;
                RaisePropertyChanged("OpenInHelpBrowser");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool OpenInHelpBrowserSpecified {
            get {
                return openInHelpBrowserFieldSpecified;
            }
            set {
                openInHelpBrowserFieldSpecified = value;
                RaisePropertyChanged("OpenInHelpBrowserSpecified");
            }
        }
        
        /// <remarks/>
        [XmlText()]
        public string Value {
            get {
                return valueField;
            }
            set {
                valueField = value;
                RaisePropertyChanged("Value");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateTemplateContentProjectCollection : object, System.ComponentModel.INotifyPropertyChanged {
        
        private object[] itemsField;
        
        /// <remarks/>
        [XmlElement("ProjectTemplateLink", typeof(ProjectTemplateLink))]
        [XmlElement("SolutionFolder", typeof(SolutionFolder))]
        public object[] Items {
            get {
                return itemsField;
            }
            set {
                itemsField = value;
                RaisePropertyChanged("Items");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    [XmlRoot(Namespace="http://schemas.microsoft.com/developer/vstemplate/2005", IsNullable=false)]
    public partial class ProjectTemplateLink : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string projectNameField;
        
        private string valueField;
        
        /// <remarks/>
        [XmlAttribute()]
        public string ProjectName {
            get {
                return projectNameField;
            }
            set {
                projectNameField = value;
                RaisePropertyChanged("ProjectName");
            }
        }
        
        /// <remarks/>
        [XmlText()]
        public string Value {
            get {
                return valueField;
            }
            set {
                valueField = value;
                RaisePropertyChanged("Value");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    [XmlRoot(Namespace="http://schemas.microsoft.com/developer/vstemplate/2005", IsNullable=false)]
    public partial class SolutionFolder : object, System.ComponentModel.INotifyPropertyChanged {
        
        private object[] itemsField;
        
        private string nameField;
        
        /// <remarks/>
        [XmlElement("ProjectTemplateLink", typeof(ProjectTemplateLink))]
        [XmlElement("SolutionFolder", typeof(SolutionFolder))]
        public object[] Items {
            get {
                return itemsField;
            }
            set {
                itemsField = value;
                RaisePropertyChanged("Items");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string Name {
            get {
                return nameField;
            }
            set {
                nameField = value;
                RaisePropertyChanged("Name");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateTemplateContentProjectItem : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string subTypeField;
        
        private string customToolField;
        
        private string itemTypeField;
        
        private bool replaceParametersField;
        
        private bool replaceParametersFieldSpecified;
        
        private string targetFileNameField;
        
        private string valueField;
        
        /// <remarks/>
        [XmlAttribute()]
        public string SubType {
            get {
                return subTypeField;
            }
            set {
                subTypeField = value;
                RaisePropertyChanged("SubType");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string CustomTool {
            get {
                return customToolField;
            }
            set {
                customToolField = value;
                RaisePropertyChanged("CustomTool");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string ItemType {
            get {
                return itemTypeField;
            }
            set {
                itemTypeField = value;
                RaisePropertyChanged("ItemType");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public bool ReplaceParameters {
            get {
                return replaceParametersField;
            }
            set {
                replaceParametersField = value;
                RaisePropertyChanged("ReplaceParameters");
            }
        }
        
        /// <remarks/>
        [XmlIgnore()]
        public bool ReplaceParametersSpecified {
            get {
                return replaceParametersFieldSpecified;
            }
            set {
                replaceParametersFieldSpecified = value;
                RaisePropertyChanged("ReplaceParametersSpecified");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string TargetFileName {
            get {
                return targetFileNameField;
            }
            set {
                targetFileNameField = value;
                RaisePropertyChanged("TargetFileName");
            }
        }
        
        /// <remarks/>
        [XmlText()]
        public string Value {
            get {
                return valueField;
            }
            set {
                valueField = value;
                RaisePropertyChanged("Value");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateTemplateContentReferences : object, System.ComponentModel.INotifyPropertyChanged {
        
        private VSTemplateTemplateContentReferencesReference referenceField;
        
        /// <remarks/>
        public VSTemplateTemplateContentReferencesReference Reference {
            get {
                return referenceField;
            }
            set {
                referenceField = value;
                RaisePropertyChanged("Reference");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateTemplateContentReferencesReference : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string assemblyField;
        
        /// <remarks/>
        public string Assembly {
            get {
                return assemblyField;
            }
            set {
                assemblyField = value;
                RaisePropertyChanged("Assembly");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateTemplateContentCustomParameter : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string nameField;
        
        private string valueField;
        
        /// <remarks/>
        [XmlAttribute()]
        public string Name {
            get {
                return nameField;
            }
            set {
                nameField = value;
                RaisePropertyChanged("Name");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string Value {
            get {
                return valueField;
            }
            set {
                valueField = value;
                RaisePropertyChanged("Value");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateWizardExtension : object, System.ComponentModel.INotifyPropertyChanged {
        
        private object[] assemblyField;
        
        private object[] fullClassNameField;
        
        /// <remarks/>
        [XmlElement("Assembly")]
        public object[] Assembly {
            get {
                return assemblyField;
            }
            set {
                assemblyField = value;
                RaisePropertyChanged("Assembly");
            }
        }
        
        /// <remarks/>
        [XmlElement("FullClassName")]
        public object[] FullClassName {
            get {
                return fullClassNameField;
            }
            set {
                fullClassNameField = value;
                RaisePropertyChanged("FullClassName");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCode("xsd", "2.0.20207.0")]
    [System.Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    [System.ComponentModel.DesignerCategory("code")]
    [XmlType(AnonymousType=true, Namespace="http://schemas.microsoft.com/developer/vstemplate/2005")]
    public partial class VSTemplateWizardData : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Xml.XmlElement[] anyField;
        
        private string nameField;
        
        /// <remarks/>
        [XmlAnyElement()]
        public System.Xml.XmlElement[] Any {
            get {
                return anyField;
            }
            set {
                anyField = value;
                RaisePropertyChanged("Any");
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string Name {
            get {
                return nameField;
            }
            set {
                nameField = value;
                RaisePropertyChanged("Name");
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
}
